The usability of an application can be essential to its success. In addition, increased support for customization and localization of applications means that an application can be tailored to reach a larger audience. The wide use of features such as common dialog boxes and controls has increased consistency between applications. Application developers may take the same software package and simply customize and/or localize the interface for a particular audience. For example, engineers may desire a particular user interface for a word processing application; whereas legal professionals may find a somewhat different user interface more productive.
Hence application developers need to be able to customize an application user interface (UI) for different types of users and industries. These types of customizations are referred to as profile customizations. In profile customization, application developers change the visibility and presentation of commands, menus, toolbars, or other features of an application UI for a particular and specified use. In addition to specialized profile customizations, users like to customize so that they can tailor an application even more specifically to apply enterprise wide uniformity or even at the granularity of a single individual. For example, a corporation may have a customized toolbar that is essential to their business and simplifies the operation of an application. Or a particular user may customize an application UI to meet their personal preferences.
In some cases, profile customizations and user customizations may both be desirable. For example, an engineering company may employ an engineering-specific application, and an individual at this company may wish to further customize a particular menu or toolbar of the application UI.
Various applications, such as spreadsheets, word processors, and games, allow the incorporation of customizations to the application UI from both users and profiles. The customizations are typically applied to commands, toolbars, menus, and keyboard shortcuts of the particular application but may also be applied to, for example, window layouts. Examples of the customizations include hiding a command bar, creating a new command bar, deleting a menu, adding a new command to a command bar, and removing a command from a group within a menu or toolbar.
Depending upon the application, users may wish to customize the application UI to better fit their own personal use of the application. For example, a particular user may find that a certain command within a menu is never used and, therefore, wishes to remove the command. Or a user may desire a command bar that only contains that particular user's most frequently used commands. Similarly, different software modules contribute different customizations, in the form of profile customizations, based upon the application's use. For example, a toolbar may not be applicable to a particular application for one type of industry, so it is desirable to eliminate the toolbar through the use of profile customization by an application developer.
Furthermore, with the current growth of application and software functionality, there are many software programs, known as add-ins, that extend the functionality of larger, more complicated programs and applications. As the use of add-ins increases, the need to customize their features will also grow. With this increase, it will be important to a user for the add-ins' functionality to remain when customizing a particular application.